﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;

namespace TMS
{
    public class ComentarioError
    {
        #region ATRIBUTOS

        private long _Id;
        private string _Comentario;
        private DateTime _Fecha;
        private Usuario _Usuario;

        #endregion

        #region PROPERTIES

        public long Id
        {
            get { return _Id; }
            set { _Id = value; }
        }
        public string Comentario
        {
            get { return _Comentario; }
            set { _Comentario = value; }
        }
        public DateTime Fecha
        {
            get { return _Fecha; }
            set { _Fecha = value; }
        }
        public Usuario Usuario
        {
            get { return _Usuario; }
            set { _Usuario = value; }
        }

        #endregion
        #region CONSTRUCTORES
        public ComentarioError()
        { }
        public ComentarioError(long pId, string pComentario, DateTime pFecha, Usuario pUsuario)
        {
            _Id = pId;
            _Comentario = pComentario;
            _Fecha = pFecha;
            _Usuario = pUsuario;
        }
        #endregion
        #region METODOS
        /* Agrega un nuevo comentario*/
        public void newComentario(long pErrorId) 
        {
            ComentarioErrorXMLManager.getInstancia().addComentario(this, pErrorId);
        }
        /* Modifica un comentario ya creado */
        public void modComentario(long pErrorId)
        {
            ComentarioErrorXMLManager.getInstancia().updateComentario(this, pErrorId);
        }
        /* Elimina un comentario*/
        public void remComentario()
        {
            ComentarioErrorXMLManager.getInstancia().removeById(this.Id);
        }
        /* Elimina todos los comentarios pertenecientes a un error. */
        public void remComByIdError(long pId)
        {
            ComentarioErrorXMLManager.getInstancia().removeComentsByIdError(pId);
        }
        /* Lista todos los comentarios pertenecientes a un error. */
        public static List<ComentarioError> getListCom(long pId)
        {
            List<ComentarioError> l =  ComentarioErrorXMLManager.getInstancia().getComentariosByIdError(pId);
            return l;
        }
        public static ComentarioError getCommentById(long comId)
        {
            return ComentarioErrorXMLManager.getInstancia().getCommentById(comId);
        }
        public static long getUltimoId()
        {
            return ComentarioErrorXMLManager.getInstancia().getUltimoId();
        }
        public override string ToString()
        {
            return "Fecha: " + _Fecha.ToString() + ", Usuario: " + _Usuario.Nombre + ", Comentario: " + _Comentario;
        }
        #endregion
    }
}